/*
 *
 * TransExit.java Copyright(C) 2019-2020 YXY - 北京云星宇交通科技股份有限公司
 *
 * @date 2019-11-13
 */
package com.yxy.ms.manager.entity.po;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

/**
 * <函数描述>实体类 2019-11-13 14:17:22
 */
@Setter
@Getter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TransExit extends ClearDataTemp implements Serializable {

    private static final long serialVersionUID = 8660815123439159539L;

    /**
     * 交易唯一标识号id，主键
     */
    private Long mid;

    /**
     * 车道站编号
     */
    private String sender;

    // /**
    // * 出口处理编号
    // */
    // private String gid;

    /**
     * 通行标识
     */
    private String passId;

    /**
     * 分中心ID
     */
    private Integer centerId;

    /**
     * null
     */
    private Integer netWork;

    /**
     * 广场id
     */
    private Integer plazaId;

    /**
     * 车道号
     */
    private Integer laneId;

    /**
     * 车道类型0、etc车道 （原始交易表定义）1、普通mtc车道2、etc车道（a37定义）3、手持机
     */
    private Integer laneType;

    /**
     * 收费模式
     */
    private Integer tollMode;

    /**
     * 收费员id
     */
    private Integer operatorId;

    /**
     * 子班次开始时间
     */
    private Date shiftBeginTime;

    /**
     * 班次id
     */
    private Integer shiftId;

    /**
     * 车道状态
     */
    private Integer laneState;

    /**
     * 交易顺序号
     */
    private Integer transSerialNo;

    /**
     * 交易发生时间
     */
    private Date transOccurTime;

    /**
     * 上下行属性
     */
    private Integer upDown;

    /**
     * 车牌号
     */
    private String carLicense;

    /**
     * 实际车牌颜色
     */
    private Integer vehicleColor;

    /**
     * 数据来源
     */
    private Integer dataSource;

    /**
     * 交易介质类型
     */
    private int mediumType;

    /**
     * 介质编码
     */
    private String mediaNo;

    /**
     * 车型id
     */
    private Integer vehType;

    /**
     * 车种
     */
    private Integer exVehicleClass;

    /**
     * 付费类型
     */
    private Integer payType;

    /**
     * 支付类型部级定义
     */
    private Integer payTypeNew;

    /**
     * 付费子类型
     */
    private Integer paySubclass;

    /**
     * 特殊付费类型
     */
    private Long spPayType;

    /**
     * 多种特情时，以“|”分隔
     */
    private String specialType;

    /**
     * 费率表版本
     */
    private String feeVersion;

    /**
     * null
     */
    private String rateVersion;

    /**
     * 应收金额(单位：分)
     */
    private Integer feeFare;

    /**
     * 优惠版本号
     */
    private Long disVersion;

    /**
     * 优惠率
     */
    private BigDecimal discount;

    /**
     * 实收金额（单位：分）
     */
    private Integer realFare;

    /**
     * 优惠金额
     */
    private Integer discountFee;

    /**
     * 机打发票号
     */
    private Long billNo;

    /**
     * 车队队列号
     */
    private Integer carQueueNo;

    /**
     * 正常记录及特殊事件
     */
    private Integer icardWorkmode;

    /**
     * tac计算码
     */
    private String icardTacNo;

    /**
     * ic卡的逻辑类型
     */
    private Integer icardCardType;

    /**
     * ic卡/cpc卡箱号物理编号
     */
    private String icardCardNo;

    /**
     * ic卡物理类型
     */
    private Integer icardPhysicalType;

    /**
     * ic卡网络号
     */
    private String icardNetId;

    /**
     * 发行方id
     */
    private String icardIssuerId;

    /**
     * 支付卡号
     */
    private String icardIssuerNum;

    /**
     * ic卡版本号
     */
    private Integer icardIssuerVersion;

    /**
     * ic卡车牌号
     */
    private String icardLicense;

    /**
     * 卡交易前余额(单位：分)
     */
    private Long icardBalance;

    /**
     * cpu卡内车牌颜色
     */
    private Integer icardLicenseColor;

    /**
     * 卡交易后余额(单位：分)
     */
    private Long icardLastBalance;

    /**
     * 卡交易计数
     */
    private Integer icardTransCount;

    /**
     * ic卡用户类型
     */
    private Integer icardUserType;

    /**
     * psam卡id号
     */
    private String psamId;

    /**
     * psam脱机交易序号
     */
    private Integer psamTranSn;

    /**
     * 终端机编号
     */
    private String terminalNo;

    /**
     * 交易的服务类型
     */
    private Integer serviceType;

    /**
     * obu物理号
     */
    private String obuId;

    /**
     * obu发行号
     */
    private String obuNo;

    /**
     * obu状态
     */
    private String obuStatus;

    /**
     * obu内车牌号
     */
    private String obuVehicleNo;

    /**
     * obu内车牌颜色
     */
    private Integer obuVehicleColor;

    /**
     * null
     */
    private Integer obuSign;

    /**
     * obu 车型
     */
    private Integer obuVehicleType;

    /**
     * 入口车道类型
     */
    private Integer ipassCardType;

    /**
     * 计次票类型（只针对一卡通）车型识别时跨界车信息
     */
    private Integer ipassTicksType;

    /**
     * 入口路网编号
     */
    private Integer entNetWork;

    /**
     * 入口广场id
     */
    private Integer entPlazaId;

    /**
     * 入口车道号
     */
    private Integer entLaneNo;

    /**
     * 入口收费员id
     */
    private Integer entOperatorId;

    /**
     * 入口交易时间
     */
    private Date entOccurTime;

    /**
     * 入口班次id
     */
    private Integer entShiftId;

    /**
     * 入口车型id
     */
    private Integer entVehType;

    /**
     * 入口实际收费车辆车牌号码
     */
    private String entCarLicense;

    /**
     * 入口车牌颜色
     */
    private Integer enVehicleColor;

    /**
     * 入口付费类型
     */
    private Integer entPayType;

    /**
     * 入口车种
     */
    private Integer enVehicleClass;

    /**
     * 入口车辆总重 单位kg
     */
    private Integer enWeight;

    /**
     * 路段号
     */
    private Integer roadId;

    /**
     * 入口路段号
     */
    private Integer entRoadId;

    /**
     * 入口车道类型
     */
    private Integer entLaneType;

    /**
     * 区分客货的人工选择车型
     */
    private Integer selectVehType;

    /**
     * 区分客货的识别车型
     */
    private Integer identifyVehType;

    /**
     * 车型识别可置信度
     */
    private Integer identifyScore;

    /**
     * 识别车牌颜色代号
     */
    private Integer identifyVehicleColor;

    /**
     * 车辆品牌
     */
    private Integer identifyBrand;

    /**
     * 识别车牌
     */
    private String identifyVehicleNo;

    /**
     * 0-无设备或未启用（etc未识别）1-正常2-人工修正3-无车牌4-遮挡/无法看清楚
     */
    private Integer identifyRes;

    /**
     * 天线或机具厂商代码
     */
    private Integer factoryId;

    /**
     * 入口车道 hex
     */
    private String enTollLaneHex;

    /**
     * obu或卡厂商代码
     */
    private Integer obuManulId;

    /**
     * md5较验值
     */
    private String md5Text;

    /**
     * 单 片 式 obu/cpc 卡电量百分比
     */
    private Integer electricalPercentage;

    /**
     * 计重设备返回车速, 单位:km/h
     */
    private BigDecimal weightSpeed;

    /**
     * 入口到车道车辆速度
     */
    private Integer speed;

    /**
     * 入口识别车辆轴数
     */
    private Integer enaxleCount;

    /**
     * 出口识别车辆轴数
     */
    private Integer exaxleCount;

    /**
     * 车辆总重 单位kg
     */
    private Integer exWeight;

    /**
     * 车辆限重，货车用，单位：kg
     */
    private Integer permittedWeight;

    /**
     * 入口识别车辆轴型
     */
    private String enaxlsType;

    /**
     * 出口识别车辆轴型
     */
    private String exaxlsType;

    /**
     * 算法标识
     */
    private Integer algorithmIdentifier;

    /**
     * 开票标识
     */
    private Integer identification;

    /**
     * 车牌识别流水号，长度21+14+2
     */
    private String vehicleSignId;

    // /**
    // * 是否多省交易
    // */
    // private Integer multiProvince;

    /**
     * 后台收费单元数量
     */
    private Integer oriintervalsGount;

    /**
     * 后台收费单元编号组合
     */
    private String oriintervalsGroup;

    /**
     * (本省)收费单元数量
     */
    private Long tollIntervalsCount;

    /**
     * (本省)收费单元编号组合
     */
    private String tollIntervalsGroup;

    /**
     * 出口时间
     */
    private Date exTime;

    /**
     * 入/出口状态
     */
    private Integer enPassStatus;

    /**
     * 识别点类型
     */
    private Integer pointType;

    /**
     * 耗费时间
     */
    private Integer usedTime;

    /**
     * 本省的实收金额
     */
    private Long provinceTollFee;

    /**
     * 外省的实收金额合计
     */
    private Long otherProvinceTollFee;

    /**
     * 班次日
     */
    private Date acWhen;

    /**
     * 备用字段1
     */
    private Integer res1;

    /**
     * 机场验票是记录验票用paytype
     */
    private Integer res2;

    /**
     * 备用字段3
     */
    private String res3;

    /**
     * 备用字段4
     */
    private String res4;

    /**
     * 备用字段
     */
    private Object spare;

    /**
     * 卡面扣费金额
     */
    private Long transFee;

    /**
     * ETC卡编号
     */
    private String cardId;

    /**
     * 状态
     */
    private Integer status;

    /**
     * 最后处理时间
     */
    private Date lastProcessTime;

    // /**
    // * 处理结果
    // */
    // private Integer processResult;

    /**
     * 处理原因
     */
    private Integer processReason;

    // /**
    // * 所属包号
    // */
    // private Long packageNo;

    /**
     * 包中的顺序号
     */
    private Integer transId;

    /**
     * 清分目标日
     */
    private Date clearTargetDate;

    /**
     * 清分统计日
     */
    private Date processDate;

    /**
     * 争议包号
     */
    private Long fileId;

    /**
     * 退费文件Id
     */
    private Long refundId;

    /**
     * 补交文件Id
     */
    private Long restitutionId;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 应收封账的班次索引
     */
    private Integer branchShiftindex;

    /**
     * 实收封账的索引
     */
    private Integer centerShiftindex;

    /**
     * 拆分状态
     */
    private Integer splitFlag;

    /**
     * 出口车道hex
     */
    private String exTollLaneHex;

    // -------------------------------------------------------------------------------------------------------------------------------------------------
    /**
     * <函数描述>交易类型标识 - 现在都是复合交易(09)
     *
     * @return
     */
    public String getTransType() {
        return "09";
    }

    // /**
    // * 入口实际收费车 辆车牌号码+颜 色
    // *
    // * @return
    // */
    // public String getEnVehicleId() {
    // if (StringUtils.isEmpty(entCarLicense) || enVehicleColor == null
    // || entCarLicense.endsWith(Constant.DEFALUT_VEHICLE)) {
    // return Constant.DEFALUT_VEHICLE_ID;
    // }
    // return entCarLicense + "_" + enVehicleColor;
    // }
    //
    // /**
    // * 出口实际收费车 辆车牌号码+颜 色
    // *
    // * @return
    // */
    // public String getExVehicleId() {
    // if (StringUtils.isEmpty(carLicense) || vehicleColor == null || carLicense.equals(Constant.DEFALUT_VEHICLE)) {
    // return Constant.DEFALUT_VEHICLE_ID_7;
    // }
    // return carLicense + "_" + vehicleColor;
    // }
    //
    // /**
    // * 入口识别的车牌 号码+颜色
    // *
    // * @return
    // */
    // public String getIdentifyVehicleId(String defaultValue) {
    // if (StringUtils.isEmpty(identifyVehicleNo) || identifyVehicleColor == null
    // || identifyVehicleNo.equals(Constant.DEFALUT_VEHICLE)) {
    // return defaultValue;
    // }
    // return identifyVehicleNo + "_" + identifyVehicleColor;
    // }
    //
    // /**
    // * <函数描述> obuSign转换
    // *
    // * @return
    // */
    // public Integer getObuSignValue() {
    // return obuSign != 0 ? obuSign : null;
    // }
    //
    // /**
    // * <函数描述> 通行介质类型：（3，4，8，9，10，12, 14, 15, 16, 17, 18）转2: CPC， （13）转1: ETC， （0，2，7）转9， （1，5，6，11）转3: 纸券
    // *
    // * @return
    // */
    // public Integer getMediaType() {
    // Integer mediaType = null;
    // switch (this.mediumType) {
    // case 1:
    // case 5:
    // case 6:
    // case 11:
    // // 纸券
    // mediaType = 3;
    // break;
    // case 3:
    // case 4:
    // case 8:
    // case 9:
    // case 10:
    // case 12:
    // case 14:
    // case 15:
    // case 16:
    // case 17:
    // case 18:
    // // CPC
    // mediaType = 2;
    // break;
    // case 13:
    // // ETC
    // mediaType = 1;
    // break;
    // case 0:
    // case 2:
    // case 7:
    // // 无通行介质
    // mediaType = 9;
    // break;
    // default:
    // }
    // return mediaType;
    // }
    //
    // /**
    // * 出口站多省（外省）收费数据明细
    // */
    // List<TransExitProvince> transExitProvince;
    // /**
    // * 出口站多省（本省）收费数据明细
    // */
    // List<TransExitProvinceIn> transExitProvinceIn;

    public String getDescription() {
        return "暂未提供ETC刷卡交易的相关描述信息";
    }

}